package com.blitzweb.bd;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;

import com.blitzweb.bean.Producto;

public class ProductoDAOImpl implements ProductoDAO {

	@Override	
	public boolean insert(Producto producto) {
	
		 Session session= HibernateUtil.getSessionFactory().openSession();
	        Transaction tx= session.getTransaction();
	        try {
	            tx.begin();
	            session.save(producto);
	            tx.commit();
	            return true;
	        } catch (Exception e) {
	            e.printStackTrace();
	            tx.rollback();
	        }
	        session.close();
	        return false;
	}

	@Override
	public boolean update(Producto producto) {
		 Session session= HibernateUtil.getSessionFactory().openSession();
	        Transaction tx= session.getTransaction();
	        try {
	            tx.begin();
	            session.update(producto);
	            tx.commit();
	            return true;
	        } catch (Exception e) {
	            e.printStackTrace();
	            tx.rollback();
	        }
	        session.close();
	        return false;
	}

	@Override
	public boolean delete(Producto producto) {
		 Session session= HibernateUtil.getSessionFactory().openSession();
	        Transaction tx= session.getTransaction();
	        try {
	            tx.begin();
	            session.delete(producto);
	            tx.commit();
	            return true;
	        } catch (Exception e) {
	            e.printStackTrace();
	            tx.rollback();
	        }
	        session.close();
	        return false;
	}

	@Override
	public List<Producto> getAll() {
        Session session= HibernateUtil.getSessionFactory().openSession();
        String hql="from Producto";
        Query query= session.createQuery(hql);
        List<Producto> cursos= query.list();        
        session.close(); 
        return cursos;
	}
	

}
